pub const SUPPORTED_LANGUAGES: &[SupportedLanguage] = &[
    lang("Afrikaans", "Afrikaans", "af"),
    lang("አማርኛ", "Amharic", "am"),
    lang("العربية", "Arabic", "ar"),
    lang("Azərbaycan", "Azerbaijani", "az"),
    lang("Български", "Bulgarian", "bg"),
    lang("বাংলা", "Bengali", "bn"),
    lang("Bosanski", "Bosnian", "bs"),
    lang("Català", "Catalan", "ca"),
    lang("Čeština", "Czech", "cs"),
    lang("Cymraeg", "Welsh", "cy"),
    lang("Dansk", "Danish", "da"),
    lang("Deutsch", "German", "de"),
    lang("Ελληνικά", "Greek", "el"),
    lang("English", "English", "en"),
    lang("Español", "Spanish", "es"),
    lang("Eesti", "Estonian", "et"),
    lang("Euskara", "Basque", "eu"),
    lang("فارسی", "Persian", "fa"),
    lang("Suomi", "Finnish", "fi"),
    lang("Français", "French", "fr"),
    lang("ગુજરાતી", "Gujarati", "gu"),
    lang("עברית", "Hebrew", "he"),
    lang("हिन्दी", "Hindi", "hi"),
    lang("Hrvatski", "Croatian", "hr"),
    lang("Magyar", "Hungarian", "hu"),
    lang("Հայերեն", "Armenian", "hy"),
    lang("Indonesia", "Indonesian", "id"),
    lang("Íslenska", "Icelandic", "is"),
    lang("Italiano", "Italian", "it"),
    lang("日本語", "Japanese", "ja"),
    lang("ქართული", "Georgian", "ka"),
    lang("ភាសាខ្មែរ", "Khmer", "km"),
    lang("한국어", "Korean", "ko"),
    lang("Kurdî", "Kurdish", "ku"),
    lang("Lëtzebuergesch", "Luxembourgish", "lb"),
    lang("ລາວ", "Lao", "lo"),
    lang("Lietuvių", "Lithuanian", "lt"),
    lang("Latviešu", "Latvian", "lv"),
    lang("Македонски", "Macedonian", "mk"),
    lang("Монгол", "Mongolian", "mn"),
    lang("Malay", "Malay", "ms"),
    lang("Malti", "Maltese", "mt"),
    lang("नेपाली", "Nepali", "ne"),
    lang("Nederlands", "Dutch", "nl"),
    lang("Norsk", "Norwegian", "no"),
    lang("ਪੰਜਾਬੀ", "Punjabi", "pa"),
    lang("Polski", "Polish", "pl"),
    lang("پښتو", "Pashto", "ps"),
    lang("Português (Brasil)", "Portuguese (Brazil)", "pt-BR"),
    lang("Português (Portugal)", "Portuguese (Portugal)", "pt-PT"),
    lang("Română", "Romanian", "ro"),
    lang("Русский", "Russian", "ru"),
    lang("සිංහල", "Sinhala", "si"),
    lang("Slovenský", "Slovak", "sk"),
    lang("Soomaali", "Somali", "so"),
    lang("Српски", "Serbian", "sr"),
    lang("Svenska", "Swedish", "sv"),
    lang("Kiswahili", "Swahili", "sw"),
    lang("தமிழ்", "Tamil", "ta"),
    lang("తెలుగు", "Telugu", "te"),
    lang("Тоҷикӣ", "Tajik", "tg"),
    lang("ไทย", "Thai", "th"),
    lang("Tagalog", "Filipino", "tl"),
    lang("Türkçe", "Turkish", "tr"),
    lang("Українська", "Ukrainian", "uk"),
    lang("اردو", "Urdu", "ur"),
    lang("Oʻzbek", "Uzbek", "uz"),
    lang("Tiếng Việt", "Vietnamese", "vi"),
    lang("Yorùbá", "Yoruba", "yo"),
    lang("中文 (简体)", "Chinese (Simplified)", "zh-CN"),
    lang("中文 (繁體)", "Chinese (Traditional)", "zh-TW"),
    lang("isiZulu", "Zulu", "zu"),
];

pub struct SupportedLanguage {
    pub label: &'static str,
    pub en_label: &'static str,
    pub value: &'static str,
}

const fn lang(
    label: &'static str,
    en_label: &'static str,
    value: &'static str,
) -> SupportedLanguage {
    SupportedLanguage {
        label,
        en_label,
        value,
    }
}
